const express = require('express');
const router = express.Router();
const db = require('../db/index')
// 获取所有原始题型
router.get('/originalQuestionType', (req, res) => {
    const query = 'SELECT * FROM original_question_types';
    db.query(query, (err, results) => {
        if (err) {
            console.error(err);
            return res.status(500).json({ message: '数据库查询失败' });
        }
        res.status(200).json(results);
    });
});
// ----------- 授课教师api接口---------------

// 获取特定教师的自定义题型
router.get('/customQuestionType/:teacherId', (req, res) => {
    const teacherId = req.params.teacherId;
    const query = 'SELECT * FROM custom_question_types WHERE teacherId = ?';
    db.query(query, [teacherId], (err, results) => {
        if (err) {
            console.error(err);
            return res.status(500).json({ message: '数据库查询失败' });
        }
        res.status(200).json(results);
    });
});

// 创建自定义题型
router.post('/customQuestionType', (req, res) => {
    const { teacherId: teacherId, custom_name, base_type } = req.body;
    const query = 'INSERT INTO custom_question_types (teacherId, custom_name, base_type) VALUES (?, ?, ?)';
    db.query(query, [teacherId, custom_name, base_type], (err, results) => {
        if (err) {
            console.error(err);
            return res.status(500).json({ message: '题型创建失败' });
        }
        res.status(201).json({ message: '题型创建成功', custom_id: results.insertId });
    });
});

// 修改自定义题型
router.put('/customQuestionType/:custom_id', (req, res) => {
    const customId = req.params.custom_id;
    const { custom_name, base_type } = req.body;
    const query = 'UPDATE custom_question_types SET custom_name = ?, base_type = ? WHERE custom_id = ?';
    db.query(query, [custom_name, base_type, customId], (err, results) => {
        if (err) {
            console.error(err);
            return res.status(500).json({ message: '题型修改失败' });
        }
        if (results.affectedRows === 0) {
            return res.status(404).json({ message: '题型未找到' });
        }
        res.status(200).json({ message: '题型修改成功' });
    });
});

// 删除自定义题型
router.delete('/customQuestionType/:custom_id', (req, res) => {
    const customId = req.params.custom_id;
    const query = 'DELETE FROM custom_question_types WHERE custom_id = ?';
    db.query(query, [customId], (err, results) => {
        if (err) {
            console.error(err);
            return res.status(500).json({ message: '题型删除失败' });
        }
        if (results.affectedRows === 0) {
            return res.status(404).json({ message: '题型未找到' });
        }
        res.status(200).json({ message: '题型删除成功' });
    });
});
// ----------- 系统管理员api接口---------------

// 新增原始题型
router.post('/originalQuestionType', (req, res) => {
    const { type_name } = req.body;
    if (!type_name) {
        return res.status(400).json({ message: '题型名称不能为空' });
    }
    const query = 'INSERT INTO original_question_types (type_name) VALUES (?)';
    db.query(query, [type_name], (err, result) => {
        if (err) {
            return res.status(500).json({ message: '新增原始题型失败', error: err });
        }
        res.status(201).json({ message: '新增原始题型成功', data: result });
    });
});
// 编辑原始题型
router.put('/originalQuestionType/:id', (req, res) => {
    const { id } = req.params;
    const { type_name } = req.body;
    if (!type_name) {
        return res.status(400).json({ message: '题型名称不能为空' });
    }
    const query = 'UPDATE original_question_types SET type_name = ? WHERE type_id = ?';
    db.query(query, [type_name, id], (err, result) => {
        if (err) {
            return res.status(500).json({ message: '编辑原始题型失败', error: err });
        }
        if (result.affectedRows === 0) {
            return res.status(404).json({ message: '题型不存在' });
        }
        res.status(200).json({ message: '编辑原始题型成功' });
    });
});
// 删除原始题型
router.delete('/originalQuestionType/:id', (req, res) => {
    const { id } = req.params;
    const query = 'DELETE FROM original_question_types WHERE type_id = ?';
    db.query(query, [id], (err, result) => {
        if (err) {
            return res.status(500).json({ message: '删除原始题型失败', error: err });
        }
        if (result.affectedRows === 0) {
            return res.status(404).json({ message: '题型不存在' });
        }
        res.status(200).json({ message: '删除原始题型成功' });
    });
});
// 批量删除原始题型
router.delete('/originalQuestionType', (req, res) => {
    const { ids } = req.body; // 期望请求体中是一个包含多个题型 ID 的数组
    if (!Array.isArray(ids) || ids.length === 0) {
        return res.status(400).json({ message: '必须提供要删除的题型ID数组' });
    }
    const query = 'DELETE FROM original_question_types WHERE type_id IN (?)';
    db.query(query, [ids], (err, result) => {
        if (err) {
            return res.status(500).json({ message: '批量删除原始题型失败', error: err });
        }
        res.status(200).json({ message: '批量删除原始题型成功' });
    });
});

module.exports = router;
